package main
import
(
	"fmt"
	"strconv"
)
func main(){
	//string 转换为 bool
	var s1 string = "true"
	var b bool
	//ParseBool函数的返回值有两个：(value bool,err error)
	//value就是我们得到的布尔数据，err出现的错误
	//我们只关注得到的布尔类型的数据，err可以用_直接忽略
	b,_ = strconv.ParseBool(s1)
	fmt.Printf("b的类型为:%T,b=%v \n",b,b)     //b的类型为:bool,b=true

	//String 转换为 int64
	var s2 string = "19"
	var num1 int64
	//s2:要转换的字符串   10:要转的那个int类型是几进制    64:要转成的是什么int8还是int16
	num1,_ = strconv.ParseInt(s2,10,64)
	fmt.Printf("num1的类型为:%T,num1=%v \n",num1,num1)   //num1的类型为:int64,num1=19

	//string 转换成 float
	var s3 string = "3.14"
	var f1 float64
	//将s3转换成float64
	f1,_ = strconv.ParseFloat(s3,64)
	fmt.Printf("f1的类型为:%T,f1=%v \n",f1,f1)  //f1的类型为:float64,f1=3.14

	/* 注意:string向基本数据类型转换的时候一定要确保能够转成有效的数据类型
	   否则最后得到的结果就是按照对应类型的默认值输出 */
	var s4 string = "golang"
	var b1 bool
	b1,_ = strconv.ParseBool(s4)
	fmt.Printf("b1的类型为:%T,b1=%v \n",b1,b1)  //b1的类型为:bool,b1=false
}